#include <iostream>
#include <set>
#include <map>

using namespace std;

#include "Set.h"
#include "Map.h"

void test()
{
	//set<int> t;
	//t.insert(2);
	//t.insert(1);
	//auto it = t.begin();
	//while (it != t.end())
	//{
	//	//++(*it);
	//	cout << *it << endl;
	//	++it;
	//}
	//auto it = t.end();
	//++it;
	//auto it = t.begin();
	//--it;
	//--it;
	//--it;
	//++it;
	//++it;
	//++it;
	map<char, int> mp;
	mp.insert(make_pair('a', 97));
	mp.insert(make_pair('b', 98));
	mp.insert(make_pair('c', 99));
	auto it = mp.begin();

	while (it != mp.end())
	{
		//++(*it).first;
		++(*it).second;
		cout << (*it).first << ":" << (*it).second << endl;
		++it;
	}
}
void test_set()
{
	wzw::set<int> t;
	t.insert(2);
	t.insert(1);
	t.insert(3);
	t.insert(4);
	
	wzw::set<int>::iterator it = t.begin();
	while (it != t.end())
	{
		//++(*it);
		cout << *it << " ";
		++it;
	}
	cout << endl;
}
void test_map()
{
	wzw::map<char, int> mp;
	mp.insert(make_pair('b', 98));
	mp.insert(make_pair('a', 97));
	mp.insert(make_pair('c', 99));
	wzw::map<char, int>::iterator it = mp.begin();
	while (it != mp.end())
	{
		//(*it).first++;
		cout << (*it).first << ":" << (*it).second << endl;
		++it;
	}
	++it;
	++it;

	it = mp.begin();
	//mp[(*it).first];
	cout << mp[(*it).first] << endl;
}
int main()
{
	//test();
	//test_set();
	test_map();

	return 0;
}